`ifndef CASE1_SEQUENCE__SV
`define CASE1_SEQUENCE__SV
  `include "fifo_transcation.sv"
  `include "base_test.sv"
class case1_sequence extends uvm_sequence;
  `uvm_object_utils(case1_sequence)
  fifo_transcation f_trans;
  function new(string name= "case1_sequence");
      super.new(name);
  endfunction
  
  virtual task body();
    if(starting_phase != null)
	  starting_phase.raise_objection(this);
	  repeat(100) begin
	  `uvm_do(f_trans)
	  end
	#1000;
    if(starting_phase != null)
      starting_phase.drop_objection(this);	
  endtask
endclass


class fifo_case1 extends base_test;
function new(string name = "fifo_case1", uvm_component parent = null);
      super.new(name,parent);
   endfunction 
   
   extern virtual function void build_phase(uvm_phase phase); 
   `uvm_component_utils(fifo_case1)
endclass


function void fifo_case1::build_phase(uvm_phase phase);
   super.build_phase(phase);
endfunction

`endif